using Pay.TO;
using System;

namespace Pay.Data
{
	/// <summary>
	/// 用户消费记录表
	/// </summary>
	[Serializable]
	public class UserComsumeHis
	{
		/// <summary>
		/// 消费记录Id
		/// [主键：√]
		/// [长度：19]
		/// [不允许为空]
		/// </summary>
		public long Id { get; set; }

		/// <summary>
		/// 用户Id
		/// [长度：19]
		/// [不允许为空]
		/// </summary>
		public long UserId { get; set; }

        /// <summary>
        /// 红钻变动记录Id
        /// </summary>
        public long RedRecordDetailId { get; set; }

        /// <summary>
        /// 消费项目类型（枚举）
        /// [长度：10]
        /// [不允许为空]
        /// </summary>
        public EConsumeItemType ConsumeType { get; set; }

		/// <summary>
		/// 附加信息(根据消费类型,附加信息有所不同; 加油卡充值:加油卡卡号, 商品兑换:商品名称)
		/// [长度：300]
		/// </summary>
		public string Info { get; set; }

        /// <summary>
        /// 兑换商品 商品Id
        /// </summary>
        public long? ProductId { get; set; }

        /// <summary>
        /// 订单号
        /// [长度：50]
        /// [不允许为空]
        /// </summary>
        public string OrderNo { get; set; }

		/// <summary>
		/// 消费红钻数
		/// [长度：18，小数位数：6]
		/// [不允许为空]
		/// </summary>
		public decimal ConsumeRedDrill { get; set; }

		/// <summary>
		/// 充值金额
		/// [长度：18，小数位数：2]
		/// [不允许为空]
		/// </summary>
		public decimal? RechargeAmount { get; set; }

		/// <summary>
		/// 状态（1：成功，2：失败）
		/// [长度：10]
		/// [不允许为空]
		/// </summary>
		public EUserComsumeHisStatus Status { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 用户信息
        /// </summary>
        public virtual Merchant Merchant { get; set; }
        /// <summary>
        ///收货地址id
        /// </summary>
        public long? ShipAdressId { get; set; }
    }
}
